package util;

import java.io.File;
public class GAConfig {
	public static final int MAX_BR = 2000;
	public static final int MAX_ST = 2000;

    public static final int TestCaseSize = 40;  /* 200;test length, named from */
    public static final int PopulationSize=40;
    public static final int N = 20; /* number of unique items,*/
    public static  long RANDOM_SEED =0;//Calendar.getInstance().getTimeInMillis();// 70;// 30 50 70 90 
    public static final int elitismNumBest=10;//10%
    public static final int TestCaseRandomSize =200;
  
    public static final int localSearchNum=3;
	
    //Returns how many variables there are for the CUT type --- References
    public static final int NumVarCut=2;
 
   // @Option("Use only public classes/methods")
    public static boolean public_only = true;
   
	public static float SET_TO_NULL = 0.05f;
    
    public static final int   ImmigrantEveryX=1;   
    public static final float probImmigrant = 0.2f;
  
    public static final int crossoverRate=80;
    public static final int mutationRate=20;
    
    public static final boolean PrintPopulation=false;
   
    public static final boolean  Debug=false;
    
    public static final boolean SaveData=false;
    public static final boolean Silent=false;
    // Dependences Methods Parameters
//	public static boolean useMethodsDependinecies = false;
	
    
    //Crossover
 //public static final String CrossoverStrategy="crossover.SingleCrossOver";
	  public static final String CrossoverStrategy="crossover.SingleRandomCrossOver";
    

//public static String		classFilePath="C:/GA/JodaTime/CUT.txt";
//public static String		classFilePath="./roops/CUT.txt";
//public static String		classFilePath="./TestClasses/BitSet/CUT.txt";
//public static String		classFilePath="./TestClasses/database/toydatabase.txt";
//public static String		classFilePath="./TestClasses/TreeMap/CUT.txt";
//public static String		classFilePath="./TestClasses/toyexamples/Stack.txt";
public static String		classFilePath="./TestClasses/Fraction/CUT.txt";
// public static String		classFilePath="./src/instrumented/IntAVLTreeMap_pred.txt";
//public static String		classFilePath="./src/instrumented/FibonacciHeap.txt";
	/** the base directory (e.g. $HOME/workspace/project/ ) */
	private static File dirBase;

	/** source directory */
	private static File dirSource;

	/** directory with classes compiled by the user */
	private static File dirCompiled;

	/** directory with classes instrumented */
	private static File dirInstrumented;
 
	public static void ConfigProject() {
		dirBase = new File(".");
		dirSource = new File("src");
		dirCompiled = new File("bin");
		dirInstrumented = new File("instrumented");

	}
	public static File getDirInstrumented() {
		ConfigProject();
		dirInstrumented = new File(dirBase, dirInstrumented.getPath()).getAbsoluteFile();
		return dirInstrumented;
	}
	public static File getDirCompiled() {
		ConfigProject();
		if(!dirCompiled.isAbsolute()) dirCompiled = new File(dirBase, dirCompiled.getPath()).getAbsoluteFile();
		return dirCompiled;
	}

}
